/**
 * @author Q
 * @create 2025-06-27-18:20
 */

/**
 * 14.linux基本使用和程序部署
 *      3.linux基本命令
 *      4.搭配java部署环境
 *      5.部署Web到linux
 */
public class Test {
    public static void main(String[] args) {
        /**
         * 5.部署Web到linux
         *      1.什么是部署
         *          将程序安装到生产环境上
         *      2.环境配置
         *          1.数据准备
         *              按照数据库表脚本，在服务器上创建一个相同数据库
         *          2.程序配置文件修改
         *              根据不同平台创建不同配置文件，名字为application-XXX.yml或者application-XXX.properties
         *              固定格式, 只有后⾯的字⺟可以修改，在配置⽂件⾥写不同的内容
         *              在主配置⽂件 application.yml 中指定配置⽂件, 并删除数据库相关配置
         *          3.构建项目并打包
         *              1. 如果Test代码中有与环境配置相关的操作(⽐如数据库相关的操作), 打包会失败, 点击下图①处的图标, 可以跳过测试
         *              2. 点击clean->package
         *          4.上传jar包到服务器并运行
         *              1.上传Jar包
         *                  直接拖动打好的jar包到xshell窗⼝即可完成⽂件的上传，如果不支持lrzsz
         *              2.运⾏程序
         *                  nohup Command [ Arg … ] [ & ]
         *                      Command：要执⾏的命令。
         *                      Arg：⼀些参数，可以指定输出⽂件
         *                      &：让命令在后台执⾏，终端退出后命令仍旧执⾏
         *              3.开发端口号
         *                  如果外⽹需要访问该服务, 需要先服务器防⽕墙开放对应的端⼝号，非必要不开启
         *          5.验证程序
         *              1. 访问项⽬
         *              2. 按照项⽬的功能进⾏验证
         *          6.常见问题
         *          7.杀掉进程
         *              如果我们需要重启服务, 或者重新部署等, 都需要先停⽌之前的服务.
         *              1. 查看当前服务的进程
         *                  ps -ef|grep java
         *              2. 杀掉进程
         *                  kill -9 -PID
         *
         */
    }
    public static void main2(String[] args) {
        /**
         * 4.搭配java部署环境
         *      1.apt
         *          linux软件包管理工具
         *          常用命令：
         *              apt list，列出所有软件包（不建议使用，建议配合管道使用）
         *              更新软件包数据库，apt-get update(root下，没有在root下，前面加sudo)
         *              安装软件包，apt install 包名
         *              卸载软件包，apt remove 包名,删除二进制文件，存在配置残留
         *              卸载软件包，apt purge 包名,删除与包的所有文件，不存在配置残留
         *      2.JDK
         *      3.mysql
         *          退出方法exit
         *          链接：mysql -uroot -p 回车 + 密码 / mysql -uroot -p+密码
         */
    }
    public static void main1(String[] args) {
        /**
         *3.linux基本命令（切换root权限，sudo su）
         *      1.pwd
         *          查看当前路径（绝对路径）
         *      2.ls 查看当前文件夹下面的内容
         *        ll 查看当前文件夹下面的详细内容
         *      3.cd 切换目录
         *          cd ~,返回个人用户的文件夹
         *          cd ..,返回上级目录
         *          cd -,返回最近打开的目录
         *          可以使用tab一键不全
         *      4.mkdir 创建文件夹
         *      5.touch 创建文件
         *      6.cat 查看文件
         *          :q,文件退出
         *      7.vi/vim 编辑文件
         *          i,进入编辑模式
         *          esc + : + wq,退出并保存
         *          :q!,强制退出，不保存
         *      8.rm 删除文件/目录
         *          删除目录 rm 目录
         *          删除文件 rm -rf 文件(强制删除文件)
         *      9.cp 复制文件/目录
         *          cp 源文件文件夹/目录 目标文件夹/目录
         *      10.mv 移动文件/目录
         *          mv 源文件/目录 目标文件 （移动）
         *          mv 目录 目录 （改名）
         *      11.tail 从末尾查看文件
         *          tail -查看行数（不写默认10行） 文件名
         *      12.head 从头查看文件
         *          head -查看行数（不写默认10行） 文件名
         *      13.rz 上传文件
         *      14.sz 下载文件
         *      15.grep 查找字符串
         *          grep -n（显示行数） "字符串" 需要查找的文件名
         *      16.ps 显示进程
         *          ps -参数
         *      17.netstat  查看网络状态
         *      18.管道（|） 拼接
         *          将|前的语句的输出结果，作为|后语句的输入
         */
    }
}
